<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<link rel="Shortcut Icon" href="/images/favicon.ico" type="image/x-icon" />
<title></title>
<link rel="stylesheet" href="asciidoc-1.css" tppabs="http://old.peachfuzzer.com/v3/asciidoc.css" type="text/css" />
<link rel="stylesheet" href="website-1.css" tppabs="http://old.peachfuzzer.com/v3/website.css" type="text/css" />
</head>

<body>

<div id="layout-menu-box">
<div id="layout-menu">
  <div><a href="WhatIsPeach.html" tppabs="http://old.peachfuzzer.com/WhatIsPeach.html">What is Peach</a></div>
  <div><a href="Installation.html" tppabs="http://old.peachfuzzer.com/v3/Installation.html"><b>Installing</b></a></div>
  <div><a href="PeachQuickStart.html" tppabs="http://old.peachfuzzer.com/v3/PeachQuickStart.html"><b>Tutorials</b></a></div>
  <div><a href="Methodology.html" tppabs="http://old.peachfuzzer.com/Methodology.html">Methodology</a></div>
  <div><a href="Introduction.html" tppabs="http://old.peachfuzzer.com/Introduction.html">Introduction</a></div>
  <div><a href="Training.html" tppabs="http://old.peachfuzzer.com/Training.html">Training</a></div>
  <div><a href="javascript:if(confirm(%27http://www.dejavusecurity.com/peach.html  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://www.dejavusecurity.com/peach.html%27" tppabs="http://www.dejavusecurity.com/peach.html">Enterprise</a></div>
  <div><a href="FAQ.html" tppabs="http://old.peachfuzzer.com/v3/FAQ.html">FAQ</a></div>
  <div><a href="javascript:if(confirm(%27http://forums.peachfuzzer.com/forum.php  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://forums.peachfuzzer.com/forum.php%27" tppabs="http://forums.peachfuzzer.com/forum.php">Support Forums</a></div>

  <div><h5>Peach 3</h5></div>
  <div><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="PeachPit.html" tppabs="http://old.peachfuzzer.com/v3/PeachPit.html">Peach Pits</a></div>
  <div>&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="GeneralConfiguration.html" tppabs="http://old.peachfuzzer.com/v3/GeneralConfiguration.html">General Conf</a></div>
  <div>&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="DataModeling.html" tppabs="http://old.peachfuzzer.com/v3/DataModeling.html">Data Modeling</a></div>
  <div>&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="StateModel.html" tppabs="http://old.peachfuzzer.com/v3/StateModel.html">State Modeling</a></div>
  <div>&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="AgentsMonitors.html" tppabs="http://old.peachfuzzer.com/v3/AgentsMonitors.html">Agents</a></div>
  <div>&nbsp;&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="AgentsMonitors.html" tppabs="http://old.peachfuzzer.com/v3/AgentsMonitors.html">Monitors</a></div>
  <div>&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="TestConfig.html" tppabs="http://old.peachfuzzer.com/v3/TestConfig.html">Test</a></div>
        <div>&nbsp;&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="Publisher.html" tppabs="http://old.peachfuzzer.com/v3/Publisher.html">Publishers</a></div>
  <div>&nbsp;&nbsp;<img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="Logger.html" tppabs="http://old.peachfuzzer.com/v3/Logger.html">Loggers</a></div>
  <!-- <div>&nbsp;<img src="/images/1.gif" /><a href="/v3/DebuggingPitFiles.html">Debugging Pits</a></div> -->
  <!-- <div>&nbsp;<img src="/images/1.gif" /><a href="/v3/ValidatingPitFiles.html">Validating Pits</a></div> -->
  <div><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="RunningPeach.html" tppabs="http://old.peachfuzzer.com/v3/RunningPeach.html">Running</a></div>
  <!-- <div><img src="/images/1.gif" /><a href="/v3/ParallelPeach.html">Parallel</a></div> -->
  <!-- <div><img src="/images/1.gif" /><a href="/v3/ExtendingPeach.html">Extending</a></div> -->
  <div><img src="1.gif" tppabs="http://old.peachfuzzer.com/images/1.gif" /><a href="minset.html" tppabs="http://old.peachfuzzer.com/v3/minset.html">Minset</a></div>

  <div><h5><a href="peach23.html" tppabs="http://old.peachfuzzer.com/v2/peach23.html">Peach 2.3</a></h5></div>

  <div><hr/></div>

  <div><a href="License.html" tppabs="http://old.peachfuzzer.com/License.html">License</a></div>
</div>
</div>
<div id="layout-content-box">
<div id="layout-banner">
  <div id="layout-title">
    <a href="index.htm" tppabs="http://old.peachfuzzer.com/"><img src="peach_fuzzer.png" tppabs="http://old.peachfuzzer.com/images/peach_fuzzer.png" height="100" /></a>
    <a href="javascript:if(confirm(%27http://www.dejavusecurity.com/peach.html  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://www.dejavusecurity.com/peach.html%27" tppabs="http://www.dejavusecurity.com/peach.html" class="layout-inner-banner-right">
                <img height="50" src="dejavusecurity.png" tppabs="http://old.peachfuzzer.com/images/dejavusecurity.png" /></a>
  </div>

  <div id="layout-description">
  <script>
  (function() {
    var cx = '007028538774543840348:g-0dlrdlmxs';
    var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//www.google.com/cse/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:search></gcse:search>
      </div>
</div>
<div id="layout-content">
<div id="content">
<div class="sect1">
<h2 id="_publishers">Publishers</h2>
<div class="sectionbody">
<div class="paragraph"><p>Publishers are the I/O interfaces used by Peach to send and receive data.  Publishers
support both stream and call based operations.</p></div>
<div class="paragraph"><p>When the fuzzer is running, all <a href="Action.html" tppabs="http://old.peachfuzzer.com/v3/Action.html">Actions</a> with the exception of slurp use a publisher to
perform the action. Different publishers support a different set of Action types.  For
example, the File publisher supports input for reading from a file, output for writing to a file, but does not support accept or call. This differs from the COM publisher which supports call, but not input, output, or accept.</p></div>
<div class="paragraph"><p>All fuzzing definitions must use at least one Publisher and can optionally use multiple
Publishers if needed.  When using multiple Publishers, each Action must specify which Publisher it is referencing by refering to the Publisher&#8217;s <code>name</code> attribute in the Action&#8217;s <code>publisher</code> attribute. If the <code>publisher</code> attribute is missing, the Action will be performed on the first Publisher defined in the Test.</p></div>
<div class="sect2">
<h3 id="_network_publishers">Network Publishers</h3>
<div class="paragraph"><p>When fuzzing network protocols, the publisher used is typically the protocol that encompasses the target protocol.
For example, when fuzzing the HTTP protocol the TCP publisher is used.  When fuzzing TCP, the IPv4 or IPv6 publisher is used. When fuzzing IPv4 the Ethernet publisher is used.</p></div>
</div>
<div class="sect2">
<h3 id="_custom_publishers">Custom Publishers</h3>
<div class="paragraph"><p>Peach supports the creation of custom Publishers. It is recommended that the code for some
of the existing Publishers be reviewed first to understand how Publishers are typically
implemented.</p></div>
<div class="paragraph"><p>Creating a custom Publisher does not require changing the Peach source code.  Instead the
code is placed in a new .NET assembly (dll) that is added to the Peach bin folder.  Peach
will automatically use reflection to identify the new Publisher and make it available for
use.</p></div>
</div>
<div class="sect2">
<h3 id="_publishers_2">Publishers</h3>
<div class="ulist"><ul>
<li>
<p>
<a href="Com.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Com.html">Com</a>
</p>
</li>
<li>
<p>
<a href="Console.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Console.html">Console</a>
</p>
</li>
<li>
<p>
<a href="ConsoleHex.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/ConsoleHex.html">ConsoleHex</a>
</p>
</li>
<li>
<p>
<a href="File.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/File.html">File</a>
</p>
</li>
<li>
<p>
<a href="FilePerIteration.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/FilePerIteration.html">FilePerIteration</a>
</p>
</li>
<li>
<p>
<a href="Http.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Http.html">Http</a>
</p>
</li>
<li>
<p>
<a href="Null.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Null.html">Null</a>
</p>
</li>
<li>
<p>
<a href="RawEther.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/RawEther.html">RawEther</a>
</p>
</li>
<li>
<p>
<a href="RawIPv4.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/RawIPv4.html">RawIPv4</a>
</p>
</li>
<li>
<p>
<a href="javascript:if(confirm(%27http://old.peachfuzzer.com/v3/Publishers/RawIPv6.html  \n\nThis file was not retrieved by Teleport Ultra, because the server reports that access to this file is forbidden.  \n\nDo you want to open it from the server?%27))window.location=%27http://old.peachfuzzer.com/v3/Publishers/RawIPv6.html%27" tppabs="http://old.peachfuzzer.com/v3/Publishers/RawIPv6.html">RawIPv6</a>
</p>
</li>
<li>
<p>
<a href="RawV4.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/RawV4.html">RawV4</a>
</p>
</li>
<li>
<p>
<a href="RawV6.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/RawV6.html">RawV6</a>
</p>
</li>
<li>
<p>
<a href="Remote.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Remote.html">Remote</a>
</p>
</li>
<li>
<p>
<a href="TcpClient.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/TcpClient.html">TcpClient</a>
</p>
</li>
<li>
<p>
<a href="TcpListener.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/TcpListener.html">TcpListener</a>
</p>
</li>
<li>
<p>
<a href="Udp.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/Udp.html">Udp</a>
</p>
</li>
<li>
<p>
<a href="WebService.html" tppabs="http://old.peachfuzzer.com/v3/Publishers/WebService.html">WebService</a>
</p>
</li>
</ul></div>
</div>
</div>
</div>
</div>
<div id="footnotes"></div>
<div id="footer">
<div id="footer-text">

<table width="100%">
<td><td>
<a href="javascript:if(confirm(%27http://dejavusecurity.com/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://dejavusecurity.com/%27" tppabs="http://dejavusecurity.com/"><img src="dejavusecurity.png" tppabs="http://old.peachfuzzer.com/images/dejavusecurity.png" height="50"/></a>
</td><td>&nbsp;&nbsp;&nbsp;</td><td>

Copyright (c) <a href="javascript:if(confirm(%27http://dejavusecurity.com/  \n\nThis file was not retrieved by Teleport Ultra, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?%27))window.location=%27http://dejavusecurity.com/%27" tppabs="http://dejavusecurity.com/">Deja vu Security</a> <br/>
Last updated 2014-02-23 21:24:06 PST
</td>
</table>

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1094513-10']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www/') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</div>
</div>
</div>
</div>
</body>
</html>
